package com.wuze.TCC.proxy;

import org.springframework.cglib.proxy.Enhancer;


/**
 * cglib代理类工厂
 * @author wuze
 */
public class CglibProxyFactory {

    public static Object creatCglibProxyObj(Object bean ,Class<?> clazz) {

        Enhancer enhancer = new Enhancer();
        // 为加强器指定要代理的业务类（即为下面生成的代理类指定父类）
        enhancer.setSuperclass(clazz);
        // 设置回调：对于代理类上所有方法的调用，都会调用CallBack，而Callback则需要实现intercept()方法
        enhancer.setCallback(new CglibProxy(bean));
        return enhancer.create();
    }

}

